//#include <stdio.h>
//
//#define MOD 1000000007
//#define MAX_N 1000000
//
//long long fact[MAX_N + 1]; 
//
//void precompute_factorials()
//{
//    fact[0] = 1; 
//    for (int i = 1; i <= MAX_N; i++) {
//        fact[i] = fact[i - 1] * i % MOD;
//    }
//}
//
//int main() {
//    precompute_factorials(); 
//
//    int T;
//    scanf_s("%d", &T); 
//
//    while (T--)
//    {
//        int n;
//        scanf_s("%d", &n); 
//        printf("%lld\n", fact[n]); 
//    }
//
//    return 0;
//}

//#include <stdio.h>
//
//long long fast_pow(long long a, long long b, long long p) {
//    if (p == 1) return 0; 
//    if (a == 0 && b > 0) return 0; 
//    if (b == 0) return 1; 
//
//    a %= p; 
//    long long res = 1;
//    while (b > 0) {
//        if (b & 1) { 
//            res = (res * a) % p;
//        }
//        a = (a * a) % p; 
//        b >>= 1; 
//    }
//    return res;
//}
//
//int main() {
//    int T;
//    scanf_s("%d", &T); 
//
//    while (T--) {
//        long long a, b, p;
//        scanf_s("%lld %lld %lld", &a, &b, &p);
//
//        printf("%lld\n", fast_pow(a, b, p));
//    }
//
//    return 0;
//}

#include <stdio.h>

#define P 1000000007

long long fast_pow(long long base, long long exp, long long modulus) {
    long long result = 1;
    base %= modulus;
    while (exp > 0) {
        if (exp & 1) {
            result = (result * base) % modulus;
        }
        base = (base * base) % modulus;
        exp >>= 1;
    }
    return result;
}

int main() {
    int t;
    scanf_s("%d", &t);

    while (t--) {
        long long a, b;
        scanf_s("%lld %lld", &a, &b); 

        a = a % P;
        if (a < 0) {
            a += P;
        }

        long long inv_b = fast_pow(b, P - 2, P);
        long long ans = (a * inv_b) % P;

        printf("%lld\n", ans);
    }

    return 0;
}